import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
import { Observable } from 'rxjs';

@Injectable()
export class AuthGuard implements CanActivate {
  canActivate(
    context: ExecutionContext,
  ): boolean | Promise<boolean> | Observable<boolean> {
    // 如果返回true则继续往下走，如果返回false就不会往下走，
    // 用于验证用户信息，校验token等
    console.log('守卫');
    return true;
  }
}
/**
 * 不管注册顺序，守卫总是在中间件之后执行
 * 使用方式
 * 1、全局使用 app.useGlobalGuards(new AuthGuard())
 * 2、需要的模块中使用
 * 3、在接口中使用
 */
